package cate.common.table.d;


import easy.java.dev.note.NoteClass;
import easy.java.dev.note.NoteField;
import org.apache.commons.lang3.StringUtils;

@NoteClass("Buff")
public class GDBuff {


    @NoteClass( "Buff-效果类型")
    public static class Type {

        public static final String 眩晕 = "眩晕";
        public static final String 冰冻 = "冰冻";
        public static final String 缴械 = "缴械";
        public static final String 沉默 = "沉默";
        public static final String 嘲讽 = "嘲讽";
        public static final String 混乱 = "混乱";

        public static final String 免疫控制 = "免疫控制";
        public static final String 免疫暴击 = "免疫暴击";
        public static final String 免疫指定buff = "免疫指定buff";
        public static final String 免疫负面状态 = "免疫负面状态";
        public static final String 免疫技能伤害 = "免疫技能伤害";
        public static final String 免疫分摊伤害 = "免疫分摊伤害";
        public static final String 免疫驱散增益 = "免疫驱散增益";

        public static final String 伤害 = "伤害";
        public static final String 治疗 = "治疗";
        public static final String 护盾 = "护盾";
        public static final String 格挡盾 = "格挡盾";
        public static final String 反伤 = "反伤";
        public static final String 援护 = "援护";
        public static final String 诅咒 = "诅咒";


        public static final String 分摊伤害 = "分摊伤害";

        public static final String 技能吸血 = "技能吸血";
        public static final String 治疗溢出护盾 = "治疗溢出护盾";


        public static final String 禁止复活 = "禁止复活";
        public static final String 禁止回魂 = "禁止回魂";
        public static final String 禁止受疗 = "禁止受疗";

        public static final String 无视护盾 = "无视护盾";

        public static final String 属性依赖增强 = "属性依赖增强";
        public static final String 临时属性变更 = "临时属性变更";
        public static final String 回合伤害结算 = "回合伤害结算";
        public static final String 回合治疗结算 = "回合治疗结算";

        public static final String 属性变更 = "属性变更";
        public static final String 属性效率变更 = "属性效率变更 ";
        public static final String 属性偷取 = "属性偷取";

        public static final String 出手添加buff = "出手添加buff";
        public static final String 攻击添加buff = "攻击添加buff";
        public static final String 受击添加buff = "受击添加buff";
        public static final String 击杀添加buff = "击杀添加buff";
        public static final String 回合添加buff = "回合添加buff";
        public static final String 死亡添加buff = "死亡添加buff";
        public static final String 闪避添加buff = "闪避添加buff";
        public static final String 复活添加buff = "复活添加buff";
        public static final String 残血添加buff = "残血添加buff";
        public static final String 觉醒添加buff = "觉醒添加buff";



        public static final String 出手移除buff = "出手移除buff";

        public static final String 行动提升系数 = "行动提升系数";

        public static final String 英雄觉醒 = "英雄觉醒";
        public static final String 觉醒复生 = "觉醒复生";
        public static final String 觉醒盾爆 = "觉醒盾爆";
        public static final String 觉醒变更 = "觉醒变更";

        public static final String 针锋相对 = "针锋相对";

        public static final String 沙暴 = "沙暴";
        public static final String 焱铠 = "焱铠";
        public static final String 绝对零度 = "绝对零度";
        public static final String 复仇之雷 = "复仇之雷";




        public static final String 星眼 = "星眼";
        public static final String 反噬 = "反噬";
        public static final String 震伤 = "震伤";
        public static final String 战吼 = "战吼";
        public static final String 魔化 = "魔化";
        public static final String 共免 = "共免";
        public static final String 一闪 = "一闪";
        public static final String 莲心 = "莲心";
        public static final String 酗酒 = "酗酒";
        public static final String 追忆 = "追忆";
        public static final String 圣光 = "圣光";
        public static final String 圣甲 = "圣甲";
        public static final String 激荡 = "激荡";
        public static final String 霓裳 = "霓裳";
        public static final String 余震 = "余震";
        public static final String 源泉 = "源泉";
        public static final String 复苏 = "复苏";
        public static final String 金身 = "金身";
        public static final String 悬赏 = "悬赏";
        public static final String 寂灭 = "寂灭";
        public static final String 风神 = "风神";
        public static final String 壁垒 = "壁垒";
        public static final String 光焰 = "光焰";
        public static final String 暗星 = "暗星";
        public static final String 夭折 = "夭折";
        public static final String 凋零 = "凋零";
        public static final String 无效 = "无效";
        public static final String 饱腹 = "饱腹";
        public static final String 潜行 = "潜行";
        public static final String 封穴 = "封穴";
        public static final String 聚气 = "聚气";
        public static final String 归元 = "归元";
        public static final String 腐蚀 = "腐蚀";
        public static final String 虹吸果蝇 = "虹吸果蝇";
        public static final String 风神眩晕 = "风神眩晕";
        public static final String 真理守护 = "真理守护";
        public static final String 觉醒失效 = "觉醒失效";
        public static final String 暗影之魂 = "暗影之魂";
        public static final String 感同身受 = "感同身受";
        public static final String 笔走游龙 = "笔走游龙";
        public static final String 暴雨梨花 = "暴雨梨花";
        public static final String 水晶印记 = "水晶印记";
        public static final String 黄泉梦境 = "黄泉梦境";
        public static final String 海神护体 = "海神护体";
        public static final String 乾天罡气 = "乾天罡气";
        public static final String 四羊奇偶援护 = "四羊奇偶援护";

        //控制类型的buff
        public static final String[] CONTROL_TYPES = new String[]{眩晕,冰冻,缴械,沉默,嘲讽,混乱};

        //是否属于控制类型buff
        public static boolean isCtrl(String type){
            for (String controlType : CONTROL_TYPES) {
                if(StringUtils.equals(type, controlType)){
                    return true;
                }
            }
            return false;
        }
        public static final String[] SHIELD_TYPES = new String[]{护盾,觉醒盾爆};
    }

    @NoteClass("Buff-生效阶段")
    public static class Phase {
        @NoteField("回合开始后")
        public static final byte ROUND_BEG = 0;

        @NoteField("回合时")
        public static final byte ROUND_IN = 1;

        @NoteField("回合结束前")
        public static final byte ROUND_END = 2;
    }

    @NoteClass("Buff-基准")
    public static class Base {
        //这里改成和技能基准一样
        @NoteField("BUFF释放者")
        public static final byte CASTER = 1;

        @NoteField("BUFF拥有者")
        public static final byte OWNER = 2;

        @NoteField("默认值")
        public static final byte DEFAULT = OWNER;
    }


    @NoteClass("Buff-添加/移出的处理顺序")
    public static class SettleOrder {
        @NoteField("技能效果数值结算前添加/删除Buff")
        public static final byte BEFORE = 1;

        @NoteField("技能效果数值结算后添加/删除Buff")
        public static final byte AFTER = 2;
    }


    @NoteClass("Buff-失效原因")
    public static class InvalidReason {
        @NoteField( value= "无原因", detail = "当未失效时，或者设置为有效的时候")
        public static final byte NULL = -1;

        @NoteField(value = "过期")
        public static final byte EXPIRED = 0;

        @NoteField(value = "等级覆盖")
        public static final byte LEVEL_OVERRIDE = 1;

        @NoteField(value = "效用耗尽")
        public static final byte EXHAUSTED = 2;

        @NoteField(value = "被驱散")
        public static final byte DISPEL = 3;

        @NoteField(value = "死亡丢失")
        public static final byte DEAD = 4;

        @NoteField(value = "直接移除")
        public static final byte DELETE = 5;
    }



}
